
//LCP_68.美观的花束
class Solution {
    #define MOD 1000000007
public:
    int beautifulBouquet(vector<int>& flowers, int cnt) {
        //找到一个满足的区间，将该区间进行缩小得到的所有子区间也是同样满足条件的
        int n=flowers.size();
        int left=0,ret=0;
        unordered_map<int ,int> mm;
        for(int right=0;right<n;right++)
        {
            mm[flowers[right]]++;  //入窗口
            while(mm[flowers[right]]>cnt)   
                mm[flowers[left++]]--; ///出窗口

            ret=(ret+right-left+1)%MOD;  //更新答案
        }
        return ret;
    }
};